package edu.service;

import edu.vo.UserRole;
import edu.vo.ID.UserRoleId;

import java.util.List;
import java.util.Optional;

public interface UserRoleService {
    /**
     * 保存用户角色关联信息
     * @param userRole 用户角色关联对象
     * @return 保存后的用户角色关联对象
     */
    UserRole saveUserRole(UserRole userRole);

    /**
     * 根据ID获取用户角色关联信息
     * @param id 用户角色关联ID
     * @return 用户角色关联对象的Optional包装
     */
    Optional<UserRole> getUserRoleById(UserRoleId id);

    /**
     * 获取所有用户角色关联信息
     * @return 用户角色关联列表
     */
    List<UserRole> getAllUserRoles();

    /**
     * 根据ID删除用户角色关联信息
     * @param id 用户角色关联ID
     */
    void deleteUserRoleById(UserRoleId id);

    /**
     * 更新用户角色关联信息
     * @param id 用户角色关联ID
     * @param userRole 新的用户角色关联信息
     * @return 更新后的用户角色关联对象
     */
    UserRole updateUserRole(UserRoleId id, UserRole userRole);

    /**
     * 根据用户ID删除用户角色关联信息
     * @param userId 用户角色关联ID
     */
    void deleteByUserId(Integer userId);
}